#ifndef _CDSF_DISPLAY_H_
#define _CDSF_DISPLAY_H_

#include "CDSF_Includes.h"
#include "CDSF_Types.h"
#include "CDSF_ErrorCode.h"

typedef int SFScreenId;
#define SFScreenIdInvalid -1
#define SFScreenIdValid(screenId)	((screenId)>=0)

typedef struct _SFView_T_{
	void (* const viewProcessing)(const struct _SFView_T_ *view);
	void (* const viewUpdate)(const struct _SFView_T_ *view, SFScreenId screenId);
}SFView;

SFInjection const SFScreenId SFDisplayMaxScreenId;

extern const SFView * SFDisplayGetCurrentRootView(SFScreenId screenId);
extern void SFDisplaySetCurrentRootView(SFScreenId screenId, SFView *rootView);

extern SFCode SFDisplayInit(SFClockRate rate);
extern SFCode SFDisplayDelegate(void);

#endif